Day 24: GitLab CI/CD 基本概念與工作流程
Day 25: GitLab Runners 配置與使用
Day 26: 使用 GitLab CI/CD 進行原始碼掃描及套件掃描
Day 27: 使用 GitLab CI/CD 進行自動化測試
Day 28: 如何在 GitLab CI/CD 中實現持續部署 (CD)
Day 29: GitLab CI/CD 與 Kubernetes 的集成實踐
因為免費方案之硬體需求關係,此章節會以GCP作為雲端平台來操作。
GitLab Runner 提供兩種執行器:Shell Executor 和 Docker Executor。Shell Executor 在 GitLab Runner 主機上直接運行命令,適合需要直接操作主機環境的情況,配置簡單但可能與主機環境緊耦合。Docker Executor 則在 Docker 容器中運行 CI 任務,提供隔離的執行環境,可以使用不同的映像和工具,支持多種配置,但需要設置 Docker-in-Docker 或與 Docker Daemon 的連接。
因此最簡單粗暴就是採用Shell Executor
直接在ci腳本裡新增「deploy」的stage並撰寫需要執行的指令
stages:
- deploy
variables:
NGINX_IMAGE: nginx:latest
deploy:
stage: deploy
script:
- docker pull $NGINX_IMAGE
- docker run -d --name nginx-container -p 80:80 $NGINX_IMAGE
- echo "Nginx container is running"
only:
- merge_requests
當符合「merge_requests」時觸發
進入deploy的階段,拉取nginx的映像檔並執行
修改build階段
build:
stage: build
tags:
- test
rules:
- if: $CI_COMMIT_TAG_ENV == 'dev'
script:
- echo "CI_COMMIT_TAG=" && echo $CI_COMMIT_TAG
- echo "CI_COMMIT_TAG_ENV=" && echo $CI_COMMIT_TAG_ENV
- docker build -t $DOCKER_IMAGE:$CI_COMMIT_TAG .
- docker push $DOCKER_IMAGE:$CI_COMMIT_TAG
- echo "$ build CI_PROJECT_NAME $CI_COMMIT_TAG_ENV $CI_COMMIT_TAG Succeed"
這裡有一堆密密麻麻的參數
具體觸發pipeline也可通過gitlab介面執行
與腳本相符,正確傳參就可觸發ci